#include "Tree.cpp"

//给你一个整数数组 nums ，其中元素已经按 升序 排列，请你将其转换为一棵 高度平衡 二叉搜索树。
//
//高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。


TreeNode* ArrayToBST(int* nums,int left,int right) {

    if (left > right) {
        return NULL;
    }
    int mid = (left+right)/2;
    TreeNode * Node = (TreeNode*) malloc(sizeof(TreeNode));
    Node->data = nums[mid];
    Node->leftChild = ArrayToBST(nums,left,mid-1);
    Node->rightChild = ArrayToBST(nums,mid+1,right);
    return Node;
}


TreeNode* sortedArrayToBST(int* nums, int numsSize){
    return ArrayToBST(nums,0,numsSize-1);
}

int main() {
    int number[] = {-10,-3,0,5,9};
    TreeNode * tree = sortedArrayToBST(number,5);
}